1
Berpindah dari Thread ke Instance Program
AI023Lesson 4
00:00

Dalam Triton, satuan dasar eksekusi berpindah dari thread skalar CUDA ke Instance Program. Ini merupakan abstraksi dari blok thread GPU, di mana satu instance menangani blok vektorisasi elemen secara bersamaan.

1. Identitas Instance Program

Setiap unit eksekusi mendapatkan identitasnya melalui pid = tl.program_id(axis=0). Bayangkan sebuah Forklift Gudang (Instance Program) mengambil sebuah Palet (blok) berisi 128 kotak, dibandingkan dengan satu pekerja (thread CUDA) yang mengambil satu kotak.

2. Triton vs. Tensor PyTorch

Memahami kesenjangan semantik sangat penting untuk manajemen memori:

  • Tensor PyTorch: Objek Python sisi host yang membungkus penyimpanan VRAM, stride, dan metadata.
  • Tensor Triton: Objek tingkat kompiler yang mewakili nilai atau pointer yang terletak di register atau SRAM.
Tampilan PyTorch
Objek Python yang menunjuk ke memori global yang kontinu.
Tampilan Triton
Blok data 2D/1D di dalam register kompiler.

3. Sifat SPMD

Triton mengikuti pendekatan Program Tunggal, Data Banyak (SPMD) alur. Setiap instance program menjalankan persis sama kode. Perbedaan hanya terjadi ketika logika menggunakan pid untuk menghitung offset memori tertentu.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>